// 版权归Go作者所有。版权所有。
// 此源代码的使用受BSD样式
// 许可证的约束，该许可证可以在许可证文件中找到。

// 计划9特定系统调用

package runtime

// 打开
const (
	_OREAD   = 0
	_OWRITE  = 1
	_ORDWR   = 2
	_OEXEC   = 3
	_OTRUNC  = 16
	_OCEXEC  = 32
	_ORCLOSE = 64
	_OEXCL   = 0x1000
)

// 工作
const (
	_RFNAMEG  = 1 << 0
	_RFENVG   = 1 << 1
	_RFFDG    = 1 << 2
	_RFNOTEG  = 1 << 3
	_RFPROC   = 1 << 4
	_RFMEM    = 1 << 5
	_RFNOWAIT = 1 << 6
	_RFCNAMEG = 1 << 10
	_RFCENVG  = 1 << 11
	_RFCFDG   = 1 << 12
	_RFREND   = 1 << 13
	_RFNOMNT  = 1 << 14
)

// 通知
const (
	_NCONT = 0
	_NDFLT = 1
)

type uinptr _Plink

type tos struct {
	prof struct { // 每个进程分析
		pp    *_Plink // 已知为0（ptr）
		next  *_Plink // 已知为4（ptr）
		last  *_Plink
		first *_Plink
		pid   uint32
		what  uint32
	}
	cyclefreq uint64 // 如果有时钟频率，0否则
	kcycles   int64  // 在内核中花费的周期
	pcycles   int64  // 在进程中花费的周期（内核+用户）
	pid       uint32 // 不妨将pid放在这里
	clock     uint32
	// 堆栈顶部在这里
}

const (
	_NSIG   = 14  // sigtable数组中的信号数
	_ERRMAX = 128 // 注释字符串的最大长度

	// runtime·sigtab中由runtime·SIGMANIC处理的注释。
	_SIGRFAULT = 2
	_SIGWFAULT = 3
	_SIGINTDIV = 4
	_SIGFLOAT  = 5
	_SIGTRAP   = 6
	_SIGPROF   = 0 // 为不良信号定义的伪值
	_SIGQUIT   = 0 // 为sighandler 
)
